package com.cz.design.structure.proxy.dynamic;

import java.util.Arrays;

/**
 * 动态代理模式：
 *  JDK要求被代理对象必须有接口：
 *  代理对象和目标对象的相同点在于都是同一个接口
 */
public class MainTest {
    public static void main(String[] args) {

        ManTikTok leiTikTok = new LeiTikTok();

        ManTikTok proxy = JdkTikTokProxy.getProxy(leiTikTok);

        proxy.tiktok();

        ((SellTikTok) proxy).sell();

        System.out.println(Arrays.asList(proxy.getClass().getInterfaces()));
        ((LeiTikTok) proxy).haha(); // 被代理对象代理本类自己的方法，会报错！java.lang.ClassCastException. 因为proxy只能转成接口类

    }
}
